package com.yy.mapper;

import java.util.List;


import com.yy.domain.PayFeeSetting;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 收费项配置Mapper接口
 *
 * @author leige
 * @date 2023-10-28
 */
@Mapper
public interface PayFeeSettingMapper {
    /**
     * 查询收费项配置
     *
     * @param feeItemId 收费项配置主键
     * @return 收费项配置
     */
    public PayFeeSetting selectPayFeeSettingByFeeItemId(Long feeItemId);

    /**
     * 查询收费项配置列表
     *
     * @param payFeeSetting 收费项配置
     * @return 收费项配置集合
     */
    public List<PayFeeSetting> selectPayFeeSettingList(PayFeeSetting payFeeSetting);

    /**
     * 新增收费项配置
     *
     * @param payFeeSetting 收费项配置
     * @return 结果
     */
    public int insertPayFeeSetting(PayFeeSetting payFeeSetting);

    /**
     * 修改收费项配置
     *
     * @param payFeeSetting 收费项配置
     * @return 结果
     */
    public int updatePayFeeSetting(PayFeeSetting payFeeSetting);

    /**
     * 删除收费项配置
     *
     * @param feeItemId 收费项配置主键
     * @return 结果
     */
    public int deletePayFeeSettingByFeeItemId(Long feeItemId);

    /**
     * 批量删除收费项配置
     *
     * @param feeItemIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePayFeeSettingByFeeItemIds(Long[] feeItemIds);

    /**
     * 根据类型查询收费的ID
     *
     * @param type
     * @return
     */
    List<Long> queryDefaultPayFeeItemByType(@Param("type") String type);

    /**
     * 根据类型删除默认收费项目
     *
     * @param type
     */
    void deletePayFeeSettingByType(@Param("type") String type);

    /**
     * 根据配置项目ID和类型删除默认收费项目
     * @param id
     * @param type
     * @return
     */
    int delDefaultPayFeeItem(@Param("id") Long id, @Param("type") String type);
}
